Package-level declarations

Types

Link copied to clipboard

Simple PreviewParameterProvider that provides true and false values.

Link copied to clipboard
Link copied to clipboard
enum Iaq : Enum<Iaq>
Link copied to clipboard
Link copied to clipboard

Represents the various visual states of the security icon as an enum. Each enum constant encapsulates the icon, color, descriptive text, and optional badge details.

Properties

Link copied to clipboard
Link copied to clipboard

Extension property to check if the channel uses a low entropy PSK (not securely encrypted).

Link copied to clipboard

Extension property to check if MQTT is enabled for the channel.

Link copied to clipboard

Extension property to check if the channel has precise location enabled.

Link copied to clipboard
const val MAX_VALID_RSSI: Int = 0
Link copied to clipboard
const val MAX_VALID_SNR: Float = 100.0f
Link copied to clipboard

Functions

Link copied to clipboard
Link copied to clipboard
fun BatteryInfo(modifier: Modifier = Modifier, batteryLevel: Int?, voltage: Float?)
Link copied to clipboard
Link copied to clipboard
fun BitwisePreference(title: String, value: Int, enabled: Boolean, items: List<Pair<Int, String>>, onItemSelected: (Int) -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
fun BottomSheetDialog(onDismiss: () -> Unit, modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit)
Link copied to clipboard
fun ClickableTextField(@StringRes label: Int, enabled: Boolean, trailingIcon: ImageVector, value: String, onClick: () -> Unit, modifier: Modifier = Modifier, isError: Boolean = false)
Link copied to clipboard
fun CopyIconButton(valueToCopy: String, modifier: Modifier = Modifier, label: String = stringResource(id = R.string.copy))
Link copied to clipboard
Link copied to clipboard
inline fun <T> LazyListScope.dragDropItemsIndexed(items: List<T>, dragDropState: DragDropState, noinline key: (index: Int, item: T) -> Any? = null, crossinline itemContent: @Composable LazyItemScope.(index: Int, item: T, isDragging: Boolean) -> Unit)

Extension function for LazyListScope with drag-and-drop functionality for indexed items.

Link copied to clipboard
fun LazyItemScope.DraggableItem(dragDropState: DragDropState, index: Int, modifier: Modifier = Modifier, content: @Composable ColumnScope.(isDragging: Boolean) -> Unit)
Link copied to clipboard
fun <T : Enum<T>> DropDownPreference(title: String, enabled: Boolean, selectedItem: T, onItemSelected: (T) -> Unit, modifier: Modifier = Modifier, summary: String? = null)
fun <T> DropDownPreference(title: String, enabled: Boolean, items: List<Pair<T, String>>, selectedItem: T, onItemSelected: (T) -> Unit, modifier: Modifier = Modifier, summary: String? = null)
Link copied to clipboard
fun EditBase64Preference(modifier: Modifier = Modifier, title: String, value: ByteString, enabled: Boolean, readOnly: Boolean = false, keyboardActions: KeyboardActions, onValueChange: (ByteString) -> Unit, onGenerateKey: () -> Unit? = null, trailingIcon: @Composable () -> Unit? = null)
Link copied to clipboard
fun EditIPv4Preference(title: String, value: Int, enabled: Boolean, keyboardActions: KeyboardActions, onValueChanged: (Int) -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
inline fun <T> EditListPreference(title: String, list: List<T>, maxCount: Int, enabled: Boolean, keyboardActions: KeyboardActions, crossinline onValuesChanged: (List<T>) -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
fun EditPasswordPreference(title: String, value: String, maxSize: Int, enabled: Boolean, keyboardActions: KeyboardActions, onValueChanged: (String) -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
fun EditTextPreference(title: String, value: Double, enabled: Boolean, keyboardActions: KeyboardActions, onValueChanged: (Double) -> Unit, modifier: Modifier = Modifier)
fun EditTextPreference(title: String, value: Float, enabled: Boolean, keyboardActions: KeyboardActions, onValueChanged: (Float) -> Unit, modifier: Modifier = Modifier, onFocusChanged: (FocusState) -> Unit = {})
fun EditTextPreference(title: String, value: Int, enabled: Boolean, isError: Boolean = false, keyboardActions: KeyboardActions, onValueChanged: (Int) -> Unit, modifier: Modifier = Modifier, onFocusChanged: (FocusState) -> Unit = {}, trailingIcon: @Composable () -> Unit? = null)
fun EditTextPreference(title: String, value: String, enabled: Boolean, isError: Boolean, keyboardOptions: KeyboardOptions, keyboardActions: KeyboardActions, onValueChanged: (String) -> Unit, modifier: Modifier = Modifier, maxSize: Int = 0, onFocusChanged: (FocusState) -> Unit = {}, trailingIcon: @Composable () -> Unit? = null, visualTransformation: VisualTransformation = VisualTransformation.None)
Link copied to clipboard
fun EmojiPicker(viewModel: EmojiPickerViewModel = hiltViewModel(), onDismiss: () -> Unit = {}, onConfirm: (String) -> Unit)
Link copied to clipboard
fun EmojiPickerDialog(onDismiss: () -> Unit = {}, onConfirm: (String) -> Unit)
Link copied to clipboard
fun getIaq(iaq: Int): Iaq?
Link copied to clipboard
fun IAQScale(modifier: Modifier = Modifier)
Link copied to clipboard
@Preview(showBackground = true)
fun IAQScalePreview()
Link copied to clipboard
fun IndoorAirQuality(iaq: Int?, displayMode: IaqDisplayMode = IaqDisplayMode.Pill)
Link copied to clipboard

Displays a human readable description and icon representing the signal quality.

Link copied to clipboard
fun MainAppBar(modifier: Modifier = Modifier, viewModel: UIViewModel = hiltViewModel(), navController: NavHostController, onAction: (NodeMenuAction) -> Unit)
Link copied to clipboard
fun MaterialBatteryInfo(modifier: Modifier = Modifier, level: Int)
Link copied to clipboard
Link copied to clipboard
fun MDText(text: String, modifier: Modifier = Modifier, style: TextStyle = MaterialTheme.typography.bodyMedium, color: Color = Color.Unspecified)
Link copied to clipboard
fun MultipleChoiceAlertDialog(title: String, message: String?, choices: Map<String, () -> Unit>, onDismissRequest: () -> Unit)
Link copied to clipboard
fun NodeSignalQuality(snr: Float, rssi: Int, modifier: Modifier = Modifier)

Displays the snr and rssi color coded based on the signal quality, along with a human readable description and related icon.

Link copied to clipboard

Visual representation of the option the user may select.

Link copied to clipboard
fun PositionPrecisionPreference(value: Int, enabled: Boolean, onValueChanged: (Int) -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
Link copied to clipboard
fun PreferenceCategory(text: String, modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit? = null)
Link copied to clipboard
fun PreferenceFooter(enabled: Boolean, onCancelClicked: () -> Unit, onSaveClicked: () -> Unit, modifier: Modifier = Modifier)
fun PreferenceFooter(enabled: Boolean, @StringRes negativeText: Int, onNegativeClicked: () -> Unit, @StringRes positiveText: Int, onPositiveClicked: () -> Unit, modifier: Modifier = Modifier)
Link copied to clipboard
fun RegularPreference(title: String, subtitle: AnnotatedString, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, summary: String? = null, trailingIcon: ImageVector? = null, dropdownMenu: @Composable () -> Unit = {})
fun RegularPreference(title: String, subtitle: String, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, summary: String? = null, trailingIcon: ImageVector? = null, dropdownMenu: @Composable () -> Unit = {})
Link copied to clipboard
fun rememberDragDropState(lazyListState: LazyListState, headerCount: Int = 0, onMove: (Int, Int) -> Unit): DragDropState
Link copied to clipboard
fun Rssi(rssi: Int, fontSize: TextUnit = MaterialTheme.typography.labelLarge.fontSize)
Link copied to clipboard
fun ScannedQrCodeDialog(viewModel: UIViewModel, incoming: <Error class: unknown class>)

fun ScannedQrCodeDialog(channels: <Error class: unknown class>, incoming: <Error class: unknown class>, onDismiss: () -> Unit, onConfirm: (<Error class: unknown class>) -> Unit)

Enables the user to select which channels to accept after scanning a QR code.

Link copied to clipboard
fun SecurityIcon(channel: Channel, baseContentDescription: String = stringResource(id = R.string.security_icon_description), externalOnClick: () -> Unit? = null)

Overload for SecurityIcon that takes a Channel object to determine its security state.

fun SecurityIcon(securityState: SecurityState, baseContentDescription: String = stringResource(id = R.string.security_icon_description), externalOnClick: () -> Unit? = null)

Displays an icon representing the security status of a channel. Clicking the icon shows a detailed help dialog.

fun SecurityIcon(channelSet: <Error class: unknown class>, channelIndex: Int, baseContentDescription: String = stringResource(id = R.string.security_icon_description), externalOnClick: () -> Unit? = null)

Overload for SecurityIcon that takes an AppOnlyProtos.ChannelSet and a channel index. If the channel at the given index is not found, nothing is rendered.

fun SecurityIcon(channelSet: <Error class: unknown class>, channelName: String, baseContentDescription: String = stringResource(id = R.string.security_icon_description), externalOnClick: () -> Unit? = null)

Overload for SecurityIcon that takes an AppOnlyProtos.ChannelSet and a channel name. If a channel with the given name is not found, nothing is rendered. This overload optimizes lookup by name by memoizing a map of channel names to settings.

fun SecurityIcon(channelSettings: <Error class: unknown class>, loraConfig: <Error class: unknown class>, baseContentDescription: String = stringResource(id = R.string.security_icon_description), externalOnClick: () -> Unit? = null)

Overload for SecurityIcon that enables recomposition when making changes to the ChannelSettings.

fun SecurityIcon(isLowEntropyKey: Boolean, isPreciseLocation: Boolean = false, isMqttEnabled: Boolean = false, baseContentDescription: String = stringResource(id = R.string.security_icon_description), externalOnClick: () -> Unit? = null)

Overload for SecurityIcon that derives the SecurityState from boolean flags.

Link copied to clipboard
fun SignalInfo(modifier: Modifier = Modifier, node: Node, isThisNode: Boolean)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Preview(showBackground = true)
fun SignalInfoSimplePreview()
Link copied to clipboard
fun SignedIntegerEditTextPreference(title: String, value: Int, enabled: Boolean, keyboardActions: KeyboardActions, onValueChanged: (Int) -> Unit, modifier: Modifier = Modifier, onFocusChanged: (FocusState) -> Unit = {}, trailingIcon: @Composable () -> Unit? = null)
Link copied to clipboard
fun SimpleAlertDialog(@StringRes title: Int, @StringRes text: Int, onConfirm: () -> Unit? = null, onDismiss: () -> Unit = {})
fun SimpleAlertDialog(@StringRes title: Int, text: String, onConfirm: () -> Unit? = null, onDismiss: () -> Unit = {})
fun SimpleAlertDialog(title: String, message: String?, html: String? = null, onDismissRequest: () -> Unit, onConfirmRequest: () -> Unit = onDismissRequest)
fun SimpleAlertDialog(@StringRes title: Int, text: @Composable () -> Unit? = null, confirmText: String? = null, onConfirm: () -> Unit? = null, dismissText: String? = null, onDismiss: () -> Unit = {})
Link copied to clipboard
fun <T : Any> SlidingSelector(options: List<T>, selectedOption: T, onOptionSelected: (T) -> Unit, modifier: Modifier = Modifier, content: @Composable (T) -> Unit)

Provides the user with a set of options they can choose from.

Link copied to clipboard
fun Snr(snr: Float, fontSize: TextUnit = MaterialTheme.typography.labelLarge.fontSize)
Link copied to clipboard
fun SnrAndRssi(snr: Float, rssi: Int)

Displays the snr and rssi with color depending on the values respectively.

Link copied to clipboard
fun SwitchPreference(modifier: Modifier = Modifier, title: String, summary: String = "", checked: Boolean, enabled: Boolean, onCheckedChange: (Boolean) -> Unit, padding: PaddingValues? = null, containerColor: Color? = null, loading: Boolean = false)
Link copied to clipboard
fun TextDividerPreference(title: AnnotatedString, modifier: Modifier = Modifier, enabled: Boolean = true, trailingIcon: ImageVector? = null)
fun TextDividerPreference(title: String, modifier: Modifier = Modifier, enabled: Boolean = true, trailingIcon: ImageVector? = null)
Link copied to clipboard
fun TitledCard(title: String, modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit)